package com.neuedu.corejava.ch10;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class SetClass {

	public static void main(String[] args) {
		// set集合是Collection集合的子接口，用于保存无序且唯一的数据
		Computer computer = new Computer("惠普", 2000);
		Computer computer1 = new Computer("华为", 3000);
		Computer computer2 = new Computer("联想", 4000);
		Computer computer4 = new Computer("联想", 4000);
		Set comSet = new HashSet<>();
		// 有哪些集合，每个集合类实现那种数据结构
		System.out.println(comSet.size());//
		// 对集合元素进行增删查改
		comSet.add(computer);
		comSet.add(computer1);
		comSet.add(computer2);
		//set集合的唯一性是指同一条数据不能被保存两次，而不是指对象内部数据相同
				//如果需要根据元素的数据进行判断，则需要重写equals方法
		comSet.add(computer4);
		System.out.println(comSet.size());
		// 集合遍历
		// 方法一 --推荐使用迭代接口
		Iterator iterator = comSet.iterator();
		while (iterator.hasNext()) {// 判断集合汇中是否有下一条数据
			Object object = iterator.next();// 取出数据，并把指针下移
			Computer computer3 = (Computer) object;
			System.out.println(computer3);
		}
		
		//删除
		comSet.remove(computer2);
		System.out.println(comSet.size());
		iterator = comSet.iterator();
		while (iterator.hasNext()) {// 判断集合汇中是否有下一条数据
			Object object = iterator.next();// 取出数据，并把指针下移
			Computer computer3 = (Computer) object;
			//对集合中的数据（元素）进行修改
			computer3.setBrand("戴尔");
		}
		//查询数据是否在集合中
		if(comSet.contains(computer1)){
			System.out.println("数据在集合中");
		}else {
			System.out.println("数据不在集合中");
		}
		
		iterator = comSet.iterator();
		while (iterator.hasNext()) {// 判断集合汇中是否有下一条数据
			Object object = iterator.next();// 取出数据，并把指针下移
			Computer computer3 = (Computer) object;
			System.out.println(computer3);
		}
	}

}
